#include <Kharlia/Engine/Common.h>
#include <Kharlia/Engine/Init.h>
#include <Kharlia/Engine/Client.h>

namespace kharlia { namespace engine {

void _InitClientBindings() {
    class_<CClient, shared_ptr<CClient>, bases<core::CObject>, noncopyable>
        ("CClientBase", init<>())
        .def_readonly("Engine", &CClient::mEngine)
        .def_readonly("WindowHandle", &CClient::mWindowHandle)
        .def_readwrite("RnShowActorBounds", &CClient::mRnShowActorBounds)
        .add_property("Camera", make_getter(&CClient::mCamera), &CClient::SetCamera)
        .add_property("ViewportSize", make_getter(&CClient::mViewportSize), &CClient::SetViewportSize)
        .def("IsKeyPressed", &CClient::IsKeyPressed)
        .def("InputKeyDown", &CClient::InputKeyDown)
        .def("InputKeyUp", &CClient::InputKeyUp)
        .def("InputMouseButtonDown", &CClient::InputMouseButtonDown)
        .def("InputMouseButtonUp", &CClient::InputMouseButtonUp)
        .def("InputMousePosition", &CClient::InputMousePosition)
        .def("ConvertScreenToTileCoords", &CClient::ConvertScreenToTileCoords)
        ;

    KH_IMPL_GC(CClient);
}

}}